package com.tywj.panda.customer.common.provider

import androidx.annotation.ColorInt
import androidx.fragment.app.FragmentActivity
import com.tywj.lib.core.common.view.BaseFragment
import com.tywj.lib.route.IServiceProvider
import com.tywj.lib.route.RouteNavigation


/**
 * @desc H5组件服务接口
 * @author June Yang
 * @date 2020/6/17
 */
interface IH5Service : IServiceProvider {

    companion object {
        /**
         * H5入口，用来告诉H5页面，是哪一个入口访问的H5页面
         */
        // 默认界面
        const val DEFAULT = "default"

    }

    /**
     * 初始化环境
     */
    fun initEnvironment()

    /**
     * 跳转至H5Activity
     * @param indexUrl H5页面url地址
     * @param titleBgColor 标题栏背景颜色
     * @param h5Data 使用utimesData方法，传递给H5页面的数据
     * @param fromPage 当前页面描述，用来告诉H5页面，是哪一个Native页面访问的该H5页面
     * @return 路由导航
     */
    fun toH5Activity(
        indexUrl: String, title: String, @ColorInt titleBgColor: Int, h5Data: String = "",
        fromPage: String = DEFAULT, isShowCloseView: Boolean = true
    ): RouteNavigation

    /**
     * 获取H5Fragment
     * @param activity Activity对象
     * @param indexUrl H5页面url地址
     * @param titleBgColor 标题栏背景颜色
     * @param h5Data 使用utimesData方法，传递给H5页面的数据
     * @param fromPage 当前页面描述，用来告诉H5页面，是哪一个Native页面访问的该H5页面
     * @return H5Fragment
     */
    fun getH5Fragment(
        activity: FragmentActivity, indexUrl: String, @ColorInt titleBgColor: Int,
        h5Data: String = "", fromPage: String = DEFAULT
    ): BaseFragment
}